int GenOutLine (ImSize, RegIm, OutlIm)
int  ImSize;
BYTE ** RegIm;
BYTE ** OutlIm;
{
   int  r,c,n;

   for (r=0; r<ImSize; r++)
      for (c=0; c<ImSize; c++)  OutlIm [r][c] = 0;

   for (r=1; r<ImSize; r++)
      for (c=1; c<ImSize; c++)
         if (!RegIm [r][c-1] && RegIm [r][c])  OutlIm [r][c] = 1; else
         if (RegIm [r][c-1] && !RegIm [r][c])  OutlIm [r][c-1] = 1;

   for (r=1; r<ImSize; r++)
      for (c=1; c<ImSize; c++)
         if (!RegIm [r-1][c] && RegIm [r][c])  OutlIm [r][c] = 1; else
         if (RegIm [r-1][c] && !RegIm [r][c])  OutlIm [r-1][c] = 1;

   n=0;
   for (r=0; r<ImSize; r++)
      for (c=0; c<ImSize; c++)
         if (OutlIm[r][c])  n++;

   return(n);
}
